/**
* \file Partie.cpp
* \brief Ensemble des methodes de la classe Partie
* \author FEKI Mehdi && RIPOCHE Emilien
* \version 1.0
* \date 04/12/2011
*/

#include <iostream>
#include "Partie.h"

Partie::Partie() {
	//cout << "Partie()" << endl;
	_joueurs = vector<Joueur*>(); 
}

void Partie::ajoutJoueur(Joueur* j) {
	//cout << "Partie::ajoutJoueur(j)" << endl;
	_joueurs.push_back(j); 
}

Joueur* Partie::getJoueur(unsigned int i) const {
	//cout << "Partie::getJoueur(i)" << endl;
	if (i>=0 && i<_joueurs.size()) {
		return _joueurs[i];
	}
	return NULL;
}

vector<Joueur*> Partie::getJoueurs() {
	//cout << "Partie::getJoueurs()" << endl;
	//cout << "Taille _joueurs : " << (_joueurs.size()) << endl;
	return _joueurs;
};

void Partie::ajoutJoueur(Joueur* j, int pos) { 
	//cout << "Partie::ajoutJoueur(j,p)" << endl;
	_joueurs[pos] = j; 
};

Flotte* Partie::getFlotte(int x, int y) {
	cout << "getFlotte(" << x  << "," << y << ")" << endl;
	for (int i = 0; i < _joueurs.size(); i++) {
		cout << "i = " << i << endl;
		Flotte* v = this->_joueurs[i]->getFlotte(x,y);
		if(v != NULL) {
			return v;
		}
	}
	return NULL;
}

int Partie::getRangJoueur(Flotte::CouleurFlotte cf) {
	for (int i = 0; i<this->_joueurs.size(); i++) {
		if(_joueurs[i]->hasCouleurFlotte(cf)) {
			return i;
		}
	}
}